go_router との併用で showDialog を閉じるときに Navigator を使っていいのか
A. OK!!!
[Session/5] 天気情報取得時の例外発生時に AlertDialog を表示する by daichikuwa0618 · Pull Request #18 · daichikuwa0618/flutter-weather-app · GitHub
- そもそも
showDialogはNavigatorを呼び出して表示している- 実装見れば分かる: showDialog function - material library - Dart API
return Navigator.of(context, rootNavigator: useRootNavigator).push<T>(DialogRoute<T>(...)
- 従って、
GoRouterではなくNavigatorの API を呼び出して非表示にすること自体は自然な実装のはず - また、 go_router 公式でも
showDialog呼び出し時はNavigator.popを直接呼び出しているサンプルがある
以上の理由から妥当な実装と思っている。
また、実は GoRouter は内部で NavigatorState を操作しているため、実はここは GoRouter.of(context).pop を呼び出しても動く